package com.autoerp.action;


import com.autoerp.dao.UsuarioDAO;
import com.autoerp.model.administracao.UsuarioEntity;

import org.mentawai.action.BaseLoginAction;


public class LoginAction extends BaseLoginAction {
   
   private final UsuarioDAO usuarioDAO;
   
   
   public LoginAction(UsuarioDAO usuarioDAO) {
	   this.usuarioDAO = usuarioDAO;
   }

   @Override
   public String execute() {
      
      if (!isPost()) return ERROR;
      
      String de_login = input.getString("de_login");
      
      String de_senha = input.getString("de_senha");
      
      // Flag 
      boolean isOk = true;
      
      if (de_login == null || de_login.trim().equals("")) {
         
         addError("username", "no_username");
         
         isOk = false;
      }
      
      if (de_senha == null || de_senha.trim().equals("")) {
         
         addError("password", "no_password");
         
         isOk = false;
      }
      
      // Finaliza a acao caso ocorreu algum erro
      if (!isOk) return ERROR;
      
      
      //Busca usuario no bd pelo login fornecido no input
      UsuarioEntity usuario = usuarioDAO.buscarPorLogin(de_login);
      
      //Verifica se o login do usuario existe
      if (usuario == null) {
         
         addError("username", "unknown_user");
         
         return ERROR;
      }
      
      //Verifica a senha do bd com a da input 
      if (usuario.getDe_senha().equalsIgnoreCase(de_senha)) {
         
    	 //Seta o usuario na sessao
         setSessionObj(usuario);
         
         //Seta o usuario no grupo
        // setSessionGroups(u.getGroup());
         
                	
         return SUCCESS;
         
      } else {
         
         addError("password", "bad_password");
         
         return ERROR;
      }
   }
   
}